var OAuth = require('wechat-oauth')
var config = require('../env.config').wechatConfig
var request = require('request')
var client = new OAuth(config.appid, config.secret)

/**
 * 对接微信网页授权
 */
module.exports = {

  /**
   * 根据code获取用户信息
   * @param code
   * @param res
   * @returns {Promise<any>}
   */
  getUserByCode (code,req,res) {
    return new Promise((resolve, reject) => {
      //没有code，重定向去获取code
      if(!code){
        var url = encodeURIComponent(config.baseUrl+req.originalUrl);
        return res.redirect(config.proxyUrl+"?appId="+config.appid+"&appSecret="+config.secret+"&bUrl="+url);
      }
      client.getUserByCode(code, (err, result) => {
        if (err) {
          sails.log.error(err)
          return reject({message: err.message})
        }
        resolve(result);
        console.log("========"+JSON.stringify(result)+"==============")
      })
    })
  },
  /**
   * 微信接口数据
   */
  getJsApiTicket (url, cb) {
    request({
      method: 'GET',
      url: `${config.proxyBaseUrl}jsApiTicket?url=${encodeURIComponent(url)}`,
    },function (err,res) {
      if(err){
        console.log(err,res.body)
      }
      let result = null;
      try {
        result = JSON.parse(res.body);
      } catch (e) {
        console.log(e,res);
      }
      cb(err,result);
    })
  }
}
